let imagePaths = [];
const app = getApp();
const wuhuUrl = app.globalData.wuhuUrl;
Page({
  data: {
    wordInfo: null,
    wordIcon: '',
    wordName: '',
    wordBase64: '',
    userId: '',
    convertOptions: ['PDF', 'JPG'],
    selectedConvertIndex: 0,
  },
  onLoad: function () {
    const userInfo = wx.getStorageSync('userInfo');
    console.log('从主页面传递过来的用户信息：', userInfo);
    this.setData({
      userId: userInfo.userId,
    });
  },
  uploadWord: function () {
    wx.chooseMessageFile({
      count: 1,
      type: 'file',
      success: res => {
        const tempFilePath = res.tempFiles[0].path;
        let fileName = res.tempFiles[0].name;
        if (fileName.length > 15) {
          fileName = fileName.substring(0, 15) + '...';
        }
        if (tempFilePath.endsWith('.doc') || tempFilePath.endsWith('.docx')) {
          wx.getFileSystemManager().readFile({
            filePath: tempFilePath,
            encoding: 'base64',
            success: result => {
              const wordBase64 = result.data;
              console.log(fileName)
              this.setData({
                wordInfo: true,
                wordIcon: 'https://kangkangkangkang.oss-cn-wuhan-lr.aliyuncs.com/%E5%BA%B7/index/WORD.png',
                wordName: fileName,
                wordBase64: wordBase64
              });
            },
            fail: err => {
              console.error(err);
            }
          });
        } else {
          wx.showToast({
            title: '请选择正确的 Word 文件',
            icon: 'none'
          });
        }
      },
      fail: err => {
        console.error(err);
      }
    });
  },

  selectConvertOption: function (e) {
    const index = e.detail.value;
    this.setData({
      selectedConvertIndex: index
    });
    const selectedOption = this.data.convertOptions[index];
    console.log('Selected option:', selectedOption);
  },
  confirmConversion: function () {
    const userId = this.data.userId;
    const wordBase64 = this.data.wordBase64;
    const selectedOption = this.data.convertOptions[this.data.selectedConvertIndex];

    const requestData = {
      userId: userId,
      base64Data: wordBase64
    };

    let apiUrl = '';
    switch (selectedOption) {
      case 'PDF':
        apiUrl = wuhuUrl + '/ft/textin/word-to-pdf';
        break;
        // case 'Excel':
        //   apiUrl = 'http://localhost:8080/ft/textin/word-to-excel';
        //   break;
        // case 'PowerPoint':
        //   apiUrl = 'http://localhost:8080/ft/textin/word-to-ppt';
        //   break;
      case 'JPG':
        apiUrl = wuhuUrl + '/ft/textin/word-to-image';
        wx.showLoading({
          title: '加载中...',
          mask: true // 是否显示透明蒙层，防止触摸穿透，默认为 false
        });
        wx.request({
          url: apiUrl,
          method: 'POST',
          data: requestData,
          success: res => {
            console.log('转换成功:', res);
            wx.hideLoading();
            // 弹出确认下载对话框
            wx.showModal({
              title: '下载文件',
              content: '转换成功，是否要下载转换后的文件？',
              success: modalRes => {
                if (modalRes.confirm) {
                  // 用户确认下载文件，执行下载操作
                  wx.downloadFile({
                    url: res.data.data, // 后端返回的文件下载路径
                    success: downloadRes => {
                      if (downloadRes.statusCode === 200) {
                        // 下载成功后，解压缩 zip 文件
                        wx.getFileSystemManager().unzip({
                          zipFilePath: downloadRes.tempFilePath,
                          targetPath: wx.env.USER_DATA_PATH, // 将解压后的文件保存到用户数据目录
                          success: unzipRes => {
                            console.log('解压成功:', unzipRes);
                            // 解压成功后，遍历解压目标路径下的所有文件和文件夹
                            wx.getFileSystemManager().readdir({
                              dirPath: wx.env.USER_DATA_PATH, // 解压后的目标路径
                              success: readdirRes => {
                                console.log('读取目录成功:', readdirRes.files);
                                // 遍历读取的文件列表
                                readdirRes.files.forEach(file => {
                                  // 判断文件是否为图片文件（示例中只判断了以 .jpg 和 .png 结尾的文件）
                                  if (file.endsWith('.jpg') || file.endsWith('.png')) {
                                    // 如果是图片文件，则将其路径保存到页面数据中，以便后续处理
                                    const imagePath = `${wx.env.USER_DATA_PATH}/${file}`;
                                    console.log('图片路径:', imagePath);
                                    imagePaths.push(imagePath);
                                  }
                                });
                                wx.navigateTo({
                                  url: `../PdfChange/PdfTopicture/PdfTopicture?imagePaths=${JSON.stringify(imagePaths)}`,
                                });
                              },
                              fail: readdirErr => {
                                console.error('读取目录失败:', readdirErr);
                                // 提示用户读取目录失败
                                wx.showToast({
                                  title: '读取目录失败',
                                  icon: 'none'
                                });
                              }
                            });
                          },
                          fail: unzipErr => {
                            console.error('解压失败:', unzipErr);
                            // 提示用户解压失败
                            wx.showToast({
                              title: '解压失败',
                              icon: 'none'
                            });
                          }
                        });
                      } else {
                        console.error('文件下载失败:', downloadRes.statusCode);
                        // 提示用户下载失败
                        wx.showToast({
                          title: '文件下载失败',
                          icon: 'none'
                        });
                      }
                    },
                    fail: downloadErr => {
                      console.error('文件下载失败:', downloadErr);
                      // 提示用户下载失败
                      wx.showToast({
                        title: '文件下载失败',
                        icon: 'none'
                      });
                    }
                  });
                } else if (modalRes.cancel) {
                  // 用户取消下载文件，不进行下载操作
                }
              }
            });
          },
          fail: err => {
            console.error('转换失败:', err);
            // 提示用户转换失败
            wx.showToast({
              title: '转换失败',
              icon: 'none'
            });
          }
        });
        return;
      default:
        console.error('未知的转换选项:', selectedOption);
        return;
    }
    wx.showLoading({
      title: '加载中...',
      mask: true // 是否显示透明蒙层，防止触摸穿透，默认为 false
    });
    wx.request({
      url: apiUrl,
      method: 'POST',
      data: requestData,
      success: res => {
        console.log('转换成功:', res);
        wx.hideLoading();
        wx.showModal({
          title: '下载文件',
          content: '转换成功，是否要下载转换后的文件？',
          success: modalRes => {
            if (modalRes.confirm) {
              wx.downloadFile({
                url: res.data.data,
                success: downloadRes => {
                  if (downloadRes.statusCode === 200) {
                    wx.openDocument({
                      filePath: downloadRes.tempFilePath,
                      showMenu:true,
                      success: (openRes) => {
                        console.log('文件打开成功');
                      },
                      fail: (openErr) => {
                        console.error('打开文件失败', openErr);
                      }
                    });
                  } else {
                    console.error('文件下载失败:', downloadRes.statusCode);
                    wx.showToast({
                      title: '文件下载失败',
                      icon: 'none'
                    });
                  }
                },
                fail: downloadErr => {
                  wx.hideLoading();
                  console.error('文件下载失败:', downloadErr);
                  wx.showToast({
                    title: '文件下载失败',
                    icon: 'none'
                  });
                }
              });
            } else if (modalRes.cancel) {

            }
          }
        });
      },
      fail: err => {
        console.error('转换失败:', err);
        wx.showToast({
          title: '转换失败',
          icon: 'none'
        });
      }
    });
  }


});